<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 闭包的量大作用
        // 1.保护（私有变量和外界变量没有必然联系）
        // 2.保存（形成不销毁的栈内存，里面的私有变量等信息保存下来）
        
        // 闭包作用域
        var i = 5
        function fn2(i) {
            return function (n) {
                console.log(n + (++i));
            }
        }
        var f3 = fn2(1)
        f3(2)
        fn2(3)(4) // 不立即销毁 子函数 执行完毕销毁
        fn2(5)(6)
        f3(7)
        console.log(i);
        
        for (var i = 0; i < 3; i++) {
            function fn() {
                console.log(i);
            }
        }

        // 闭包的作用
        // 保护 保存
        // jQuery 前端非常经典的库
        
        // 通过给全局对象增加属性： jQuery 和 $ 把私有的jQuery方法包喽到全局作用域 ，供使用(等价于return jQuery)（外界需要使用 函数中的私有内容， 可以给予window.xxx 和 return xxx 两种方式实现需求）
        // window.jQuery = window.$ = jQuery

    </script>
</body>
</html>